package com.slz3.business.module.goodsManagement.gooInventory.service;

import com.slz3.business.module.goodsManagement.gooInventory.domain.GooInventory;
import org.springframework.data.domain.Page;
import org.springframework.util.MultiValueMap;
import org.springframework.web.reactive.function.server.ServerRequest;

import java.util.List;
import java.util.Optional;
import java.util.UUID;

/**
 * 非事务型 service
 */
public interface GooInventoryService {

    GooInventory save(GooInventory gooInventory);

    Page<GooInventory> page(MultiValueMap<String,String> queryParams);

    GooInventory modify(GooInventory gooInventory);

    Optional<GooInventory> single(UUID uuid);

    List<GooInventory> findAllByUuids(Iterable<UUID> uuids);

    List<GooInventory> delete(List<GooInventory> gooInventoryList);

    List<GooInventory> audit(ServerRequest req, List<GooInventory> gooInventoryList);

    /**
     * @see com.slz3.business.module.goodsManagement.gooInventory.GooInventoryDesign
     */
    void sync();
}
